package com.ruicar.afs.cloud.apply.contract.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.ruicar.afs.cloud.apply.common.entity.ApplyContractInfo;
import com.ruicar.afs.cloud.apply.contract.vo.ApplyActiveContractVo;
import com.ruicar.afs.cloud.apply.contract.vo.ApplyAllAomVo;
import com.ruicar.afs.cloud.apply.contract.vo.ApplyContractVinVo;
import com.ruicar.afs.cloud.apply.contract.vo.ApplyStatisticsVo;
import com.ruicar.afs.cloud.bizcommon.business.condition.ApplyTotalCondition;

import java.util.List;

/**
 * @author: Lee
 * @date: 2020/5/13 21:18
 * @description: 合同申请service
 */
public interface ApplyContractInfoService extends IService<ApplyContractInfo> {

    /**
     * 通过申请编号获取合同信息
     * @param applyNo
     * @return
     */
    public ApplyContractInfo getContractInfoByAppplyNo(String applyNo);
    /**
     * 获取订单信息
     *
     * @param channelId,status
     */
    public List<ApplyContractInfo> getDefaultList(String channelId,String status,String gpsStatus);
    /**
     * 获取GPS二次派单信息
     *
     * @param channelId,status
     */
    public List<ApplyContractInfo> getGpsAgainList(String channelId,String status);
    /**
     * 获取订单信息
     *
     * @param applyTotalCondition
     */
    public List<ApplyContractInfo> getContractCount(ApplyTotalCondition applyTotalCondition);
    public List<ApplyStatisticsVo> getContractCountPc(ApplyTotalCondition applyTotalCondition);

    /**
     * 通过合同模板获取合同信息
     * @param contractNo
     * @return
     */
    public ApplyContractInfo getContractInfoByContractNo(String contractNo);

    /**
     * 放款申请-更新重出标识
     * @param contractNo
     */
    public void updateReappearFlag(String contractNo);

    /**
     * 根据社会统一id获取合同激活的订单
     * */
    public List<ApplyActiveContractVo> getContractInfoByCreditCode(String creditCode);
    /**
     * 根据社会统一id获取合同激活的订单
     * */
    public List<ApplyAllAomVo> getContractAllAom(String creditCode, String criticalTime);
    /**
     * 根据社会统一id获取合同激活的订单
     * */
    public List<ApplyContractInfo> getContractInfoByAom(String creditCode, String criticalTime);
    /**
     * 根据VIN码查询合同信息
     * */
    public List<ApplyContractVinVo> getContractInfoByVin(String vin);
}
